package cn.meye11.crm.domain.query;

import cn.meye11.crm.common.Page;
import cn.meye11.crm.common.RegexUtils;
import lombok.*;

import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 会员充次记录表(RechargeTimes)查询类
 *
 * @author makejava
 * @since 2023-12-07 21:45:43
 */
@ToString(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//@ApiModel("会员充次记录表")
public class RechargeTimesQuery extends Page implements Serializable {

    private static final long serialVersionUID = 915761091924070792L;
    
    /*
     * id(可以传入一组id，以逗号分隔)
     */
    @Pattern(regexp = RegexUtils.Type.ONLY_NUMBER_OR_EMPTY, message = "只能为数字以逗号分割")
    private String id;
     //@ApiModelProperty(value = "会员ID 精确查")
    private Long memberId;
     //@ApiModelProperty(value = "会员名称 精确查")
    private String memberName;
     //@ApiModelProperty(value = "会员名称 模糊查")
    private String memberNameLike;
     //@ApiModelProperty(value = "会员名称 在列表中 逗号分割")
    private String memberNameIn;
     //@ApiModelProperty(value = "会员名称 不在列表中 逗号分割")
    private String memberNameNotIn;
     //@ApiModelProperty(value = "操作人ID 精确查")
    private Long userId;
    /* 活动名称 */
    private String activityName;
     //@ApiModelProperty(value = "充次金额 精确查")
    private Double amount;
     //@ApiModelProperty(value = "充值次数 精确查")
    private Integer times;
     //@ApiModelProperty(value = "剩余次数 精确查")
    private Integer remainingTimes;
    private Integer remainingTimesGreaterThan;
    //@ApiModelProperty(value = "已使用次数 精确查")
    private Integer usedTimes;
     //@ApiModelProperty(value = "充值方式 精确查")
    private String rechargeType;
     //@ApiModelProperty(value = "充值方式 模糊查")
    private String rechargeTypeLike;
     //@ApiModelProperty(value = "充值方式 在列表中 逗号分割")
    private String rechargeTypeIn;
     //@ApiModelProperty(value = "充值方式 不在列表中 逗号分割")
    private String rechargeTypeNotIn;
     //@ApiModelProperty(value = "充值时间 精确查")
    private LocalDateTime rechargeTime;
     //@ApiModelProperty(value = "操作人姓名 精确查")
    private String operators;
     //@ApiModelProperty(value = "操作人姓名 模糊查")
    private String operatorsLike;
     //@ApiModelProperty(value = "操作人姓名 在列表中 逗号分割")
    private String operatorsIn;
     //@ApiModelProperty(value = "操作人姓名 不在列表中 逗号分割")
    private String operatorsNotIn;
     //@ApiModelProperty(value = "客户画像标签 精确查")
    private String label;
     //@ApiModelProperty(value = "客户画像标签 模糊查")
    private String labelLike;
     //@ApiModelProperty(value = "客户画像标签 在列表中 逗号分割")
    private String labelIn;
     //@ApiModelProperty(value = "客户画像标签 不在列表中 逗号分割")
    private String labelNotIn;
     //@ApiModelProperty(value = "创建人 精确查")
    private String createdBy;
     //@ApiModelProperty(value = "创建人 模糊查")
    private String createdByLike;
     //@ApiModelProperty(value = "创建人 在列表中 逗号分割")
    private String createdByIn;
     //@ApiModelProperty(value = "创建人 不在列表中 逗号分割")
    private String createdByNotIn;
     //@ApiModelProperty(value = "最后修改人 精确查")
    private String modifiedBy;
     //@ApiModelProperty(value = "最后修改人 模糊查")
    private String modifiedByLike;
     //@ApiModelProperty(value = "最后修改人 在列表中 逗号分割")
    private String modifiedByIn;
     //@ApiModelProperty(value = "最后修改人 不在列表中 逗号分割")
    private String modifiedByNotIn;
    /*
     * 开始时间与结束时间
     */
     //@ApiModelProperty(value = "开始时间", notes = "yyyy-MM-dd HH:mm:ss", example = "2020-01-01 00:00:00")
    private LocalDateTime start;
     //@ApiModelProperty(value = "结束时间", notes = "yyyy-MM-dd HH:mm:ss", example = "2020-12-01 00:00:00")
    private LocalDateTime end;
}
